#include "cilent.h"
#include "ui_cilent.h"
#include <QDebug>
#include <QMessageBox>
#include <QDir>
#include <QFileInfoList>
#include <listitem.h>
#include "command.h"
#include "orderlistitem.h"
#include "friendlistitem.h"
#include "storeorderlistitem.h"

//2.有聊天请求，根据双方的名字来配对，比如张三想和李四聊，那就把这个请求发给李四
//的socket，如果李四接受，那配对成功，后续就可以根据这个配对信息转发两边的消息。
//这需要你定义一个交互协议，以便在同一个socket上传输多个聊天者的信息。
//3.服务器在这中间充当的是传话者的角色。

cilent::cilent(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::cilent)
{
    ui->setupUi(this);

//    ///1、连接数据库
    db.db_init();

    //显示登陆窗口
    login_windows.show();
    //设置客户端图标
    this->setWindowIcon(QIcon(":/sources/image/客户端.png"));
    //设置窗口标题
    this->setWindowTitle("华为手机销售平台");
//    this->setWindowFlags(Qt::FramelessWindowHint);


    ///连接登陆按钮
    connect(&login_windows,SIGNAL(loginSignalTOcilent(msgsocket*,QString)),
            this,SLOT(Solt_Pb_Login(msgsocket*,QString)));

    ///连接加入购物按钮
    connect(&m_DetailWidget,SIGNAL(JoinShoppingCar(QString)),
            this,SLOT(SlotJoinShoppingCar(QString)));

    ///连接立即购买按钮
    connect(&m_DetailWidget,SIGNAL(SignalBuyNow(QString,QString)),
            this,SLOT(SlotBuyNow(QString,QString)));

    QVector<QString> FriendsList;
    UpdateFriendsList(FriendsList);
//    db.test();
}

cilent::~cilent()
{
    delete ui;
}



//// 参数：msgsocket类  用户昵称
void cilent::SetSocket(msgsocket *MsgSocket, const QString &name)
{
    qDebug() << "cilent::SetSocket";
    if (NULL != MsgSocket) {
        m_msgSocket = MsgSocket;


        connect(m_msgSocket, SIGNAL(signalMessage(quint8,QVector<QString>)),
                this, SLOT(SltTcpReply(quint8,QVector<QString>)));
        connect(m_msgSocket, SIGNAL(signalStatus(quint8)),
                this, SLOT(SltTcpStatus(quint8)));
    }
}

///登陆成功 显示客户端界面
///功能：初始化客户端界面
///参数：Number-用户账号
void cilent::InitCilentWindows()
{
    ///显示用户信息
    QString Type = m_UserInfo.value(8);

    if(Type == "买家")
    {
        ///如果是买家删除“我的店铺”页。
        ui->tabWidget->removeTab(5);
    }
    else if(Type == "商家")
    {
        ///如果是商家删除“购物车”页。
        ui->tabWidget->removeTab(1);
//        ui->tabWidget->removeTab(2);
    }
    ////设置用户 “个人信息” 页，买家、商家。
    QString HeadPicture = "../Phone_platform/sources/head/" + m_UserInfo.value(3) + ".jpg";
    QImage img(HeadPicture);
    ui->lb_HeadPicture->setPixmap(QPixmap::fromImage(img));                 ///显示头像
    ui->lb_NickName->setText(m_UserInfo.value(2));                          ///显示昵称
    ui->le_AccountNumber->setText(m_UserInfo.value(0));                     ///显示账号
    ui->le_Sex->setText(m_UserInfo.value(4));                               ///显示性别
    ui->le_Name->setText(m_UserInfo.value(5));                              ///显示真实姓名
    ui->le_PhoneNumber->setText(m_UserInfo.value(6));                       ///显示手机号
    ui->le_Address->setText(m_UserInfo.value(7));                           ///显示收货地址
    //    qDebug() << m_UserInfo;
    ///显示商城列表
//    UpdateShoppingList();
    ///显示购物车列表
//    UpdateShoppingCartList();
    ///显示订单列表
//    UpdateOrderFormtList();
    ///显示好友列表
    /// （保留）
    this->show();
}

///更新商城列表
/// 功能：显示商城列表
void cilent::UpdateShoppingList(QVector<QString> PhoneInfo)
{
    ///tableitem
//    if(m_UserInfo.value(8) == "商家") return;

    for(int i = 0 ; i < ui->tableWidget->rowCount(); i++)       //列限定
    {
        for(int j = 0; j < ui->tableWidget->columnCount(); j++) //行限定
        {
            //获取文件绝对路径
//            QString fileName = list.at(j).absoluteFilePath();
            //创建一个自定义table项（就是一个widget对象）
            tableitem *bw_Temp = new tableitem;
            //连接获取详情页按钮槽
            connect(bw_Temp,SIGNAL(SignalGetDetils(QString)),
                    this,SLOT(ShowDetilWidget(QString)));
            //为所有自定义项设置信息
            bw_Temp->updateItemInfo(PhoneInfo,j);
            //将该自定义项添加到tablewidget
            ui->tableWidget->setCellWidget(i, j, bw_Temp);
        }
    }
}

/// 更新购物车列表
/// 功能：将数据库中用户的购物车列表读取到界面
void cilent::UpdateShoppingCartList(QVector<QString> ShoppingCarFoods)
{   

    qDebug() << "cilent::UpdateShoppingCartList" << ShoppingCarFoods;
    if(m_UserInfo.value(8) == "商家") return;

    ui->listWidget->clear();
//    QVector<QString> ShoppingCarFoods = db.GetShoppingCarInfo(m_UserInfo.at(0));

    for(int i = 0; i < ShoppingCarFoods.length()/2; i++)
    {
        //在listwidget创建新项
        ui->listWidget->addItem("");
        //创建一个自定义项（就是一个widget对象）
        listitem *item = new listitem;
        ///连接移除按钮
        connect(item,SIGNAL(SignalRemoveFoods(QString)),
                this,SLOT(SlotRemoveFoods(QString)));
        ///连接修改数量按钮
        connect(item,SIGNAL(SignalAfterModifyNumber(QString,QString)),
                this,SLOT(ModifyDatabaseFoodsNumber(QString,QString)));
        ///连接是否加入合计选项
        connect(item,SIGNAL(Signal_IsJoinNum(bool,QString)),
                this,SLOT(UpdateTotalPriceandNumber(bool,QString)));
        //为该自定义项设置信息(手机详细信息和加入购物车的数量)
        item->updateItemInfo(db.GetPhoneInfo(ShoppingCarFoods.at(0+i*2)),ShoppingCarFoods.at(1+i*2));
        //为该list默认项设置大小
        ui->listWidget->item(i)->setSizeHint(QSize(600,145));
        //将该自定义项添加到listwidget
        ui->listWidget->setItemWidget(ui->listWidget->item(i), item);
    }
}


/// 更新订单列表
/// 功能：将数据库中用户的订单列表读取到界面
void cilent::UpdateOrderFormtList(QVector<QString> UserOrderFormList)
{
    ui->lw_AllOrderForm->clear();       ///全部订单
//    ui->lw_NotSendGoods->clear();       ///待发货
//    ui->lw_NotReceiveGoods->clear();    ///待收货
//    ui->lw_finished->clear();           ///交易完成

    if(m_UserInfo.value(8) == "买家")
    {
        ////全部订单列表
        for(char i = 0; i < UserOrderFormList.length()/8; i++)
        {
            //在listwidget创建新项
            ui->lw_AllOrderForm->addItem("");
            //创建一个自定义项（就是一个widget对象）
            OrderListItem *item = new OrderListItem;
            ///连接删除订单按钮
            connect(item,SIGNAL(RemoveFromOrder(QString)),
                    this,SLOT(DeleteOrderForm(QString)));
            //为该自定义项设置信息(订单信息)
            item->updateItemInfo(UserOrderFormList,i);
            //为该list默认项设置大小
            ui->lw_AllOrderForm->item(i)->setSizeHint(QSize(600,145));
            //将该自定义项添加到listwidget
            ui->lw_AllOrderForm->setItemWidget(ui->lw_AllOrderForm->item(i), item);
        }

    }
    else if(m_UserInfo.value(8) == "商家")
    {
        qDebug() << "商家订单" << UserOrderFormList << UserOrderFormList.length()/8;

        ////全部订单列表
        for(char j = 0; j < UserOrderFormList.length()/8; j++)
        {
            //在listwidget创建新项
            ui->lw_AllOrderForm->addItem("");
            //创建一个自定义项（就是一个widget对象）
            StoreOrderListItem *item = new StoreOrderListItem;
            ///连接发货按钮
            connect(item,SIGNAL(SignalSendGoods(QString,QString)),
                    this,SLOT(SlotSendOrderFormNumber(QString,QString)));
            //为该自定义项设置信息(订单信息)
            item->updateItemInfo(UserOrderFormList,j);
//            qDebug() << "商家订单列表：" << UserOrderFormList;
            //为该list默认项设置大小
            ui->lw_AllOrderForm->item(j)->setSizeHint(QSize(600,145));
            //将该自定义项添加到listwidget
            ui->lw_AllOrderForm->setItemWidget(ui->lw_AllOrderForm->item(j), item);
        }
    }
}



//// 更新好友列表
void cilent::UpdateFriendsList(QVector<QString> FriendsList)
{
//    if(m_UserInfo.value(8) == "商家") return;

    ui->lw_FriendsList->clear();/// 清空当前列表

    ///  创建Item
    for(char i = 0; i < FriendsList.length()/4 ; i++)
    {
        //在listwidget创建新项
        ui->lw_FriendsList->addItem("");
        //创建一个自定义项（就是一个widget对象）
        FriendListItem *item = new FriendListItem;
//        item->SetItem(i);   ////设置在好友列表中第几项

        ///连接一下 点击该项 打开 聊天窗口
        connect(item,SIGNAL(SignalThisItemClicked(QString,QString)),
                this,SLOT(SlotOpenFriendsChatWindows(QString,QString)));

        //为该自定义项设置信息(好友信息)
        item->updateItemInfo(FriendsList,i);
        //为该list默认项设置大小
        ui->lw_FriendsList->item(i)->setSizeHint(QSize(270,80));
        //将该自定义项添加到listwidget
        ui->lw_FriendsList->setItemWidget(ui->lw_FriendsList->item(i), item);
    }
}


///发送消息按钮槽函数
///
void cilent::on_pb_send_clicked()
{
    if(ui->tE_MessageWindows->toPlainText() == "")
    {
        QMessageBox::warning(this, tr("提示："),tr("不能发送空消息！"));
        return;
    }
    else if(ui->pb_CurrentFriendName->text() == "好友昵称")
    {
         QMessageBox::warning(this, tr("提示："),tr("请选择好友！"));
         return;
    }else
    {
        // 构建 Json 对象
        QJsonObject json;
        json.insert("From",m_CurrentChatFriend);                        ///发那？
        json.insert("Where",m_UserInfo.value(0));                       ///谁发的？
        json.insert("FriendsName",m_UserInfo.value(2));
        json.insert("Content",ui->tE_MessageWindows->toPlainText());    ///发送内容

        /// 发送聊天消息
        ui->lw_ChatRecords->addItem(m_UserInfo.at(0) +ui->tE_MessageWindows->toPlainText());
        m_msgSocket->SlotSendMessage(ChatWithSb,json);
        ui->tE_MessageWindows->clear();

        qDebug() << "cilent::on_pb_send_clicked()";
    }
}


///////////////////////////////////////槽函数区///////////////////////////////////////
///登陆按钮槽函数：
/// 功能：响应登陆成功操作
/// 1、显示客户端界面
/// 2、隐藏登陆 界面
/// 3、保存用户信息到 m_UserInfo
/// 4、保存通信类
void cilent::Solt_Pb_Login(msgsocket *Msgsocket,QString AccountNumber)
{
    //// 接受magsocket类
    SetSocket(Msgsocket,AccountNumber); ///先连接服务器，确保可以从服务器获取数据 4

    /// 向服务器获取登陆主界面信息
    if (!m_msgSocket->m_tcpSocket->isOpen()) {
             m_msgSocket->ConnectToHost("localhost", 55555);
             QMessageBox::warning(this, tr("请等待"),tr("未连接服务器！"));
             return;
         }
         // 构建 Json 对象
         QJsonObject json;
         json.insert("name", AccountNumber);
         //// 发送登陆消息到服务器
//         qDebug() << "向服务器获取 商城列表、个人信息、好友列表、购物车列表、订单列表......";
         m_msgSocket->SlotSendMessage(GetUserInfo, json);
}


////修改资料按钮槽函数
//// 功能：请求修改服务器的数据
void cilent::on_pushButton_2_clicked()
{
    if(ui->pushButton_2->text() == "修改资料")
    {
        ui->pushButton_2->setText("确认修改");
        ui->lb_NickName->setReadOnly(false);
        ui->le_Address->setReadOnly(false);
        ui->le_Name->setReadOnly(false);
        ui->le_PhoneNumber->setReadOnly(false);
        ui->le_Sex->setReadOnly(false);
        ui->le_Password->setReadOnly(false);
        ui->le_PasswordAgain->setReadOnly(false);
    }
    else if(ui->pushButton_2->text() == "确认修改")
    {
        //两次密码输入一样
        if(ui->le_Password->text() == ui->le_PasswordAgain->text())
        {
            ui->pushButton_2->setText("修改资料");
            ////像数据库发出修改请求，判断返回结果是否成功！！
            // 构建 Json 对象
            QJsonObject json;
            json.insert("Sex", ui->le_Sex->text());
            json.insert("Name", ui->le_Name->text());
            json.insert("Password", ui->le_Password->text());
            json.insert("PetName", ui->lb_NickName->text());
            json.insert("MobilePhone", ui->le_PhoneNumber->text());
            json.insert("ShippingAddress", ui->le_Address->text());

            //// 发送修改信息请求
            m_msgSocket->SlotSendMessage(ModifyUserInfo, json);
        }
        else
        {
            QMessageBox::warning(this, tr("重试"),tr("两次密码输入错误！"));
        }
    }
}



///显示详情页按钮槽函数
/// 功能：显示手机详情页面
void cilent::ShowDetilWidget(QString ModelNumber)
{
    qDebug() << "准备获取详细信息！";
    QVector<QString> PhoneDetilsInfo;
    PhoneDetilsInfo = db.GetPhoneDetilsInfo(ModelNumber);
//    qDebug() << PhoneDetilsInfo;
    //设置详情界面
    m_DetailWidget.SetDetilsWidget(PhoneDetilsInfo);
    //显示详情界面
    m_DetailWidget.show();
}


///退出登陆按钮
/// 功能：（与初始化客户端做的事相反）
///      1、隐藏客户端，显示登陆界面，
///      2、清除个人购物车、个人订单列表信息、个人信息
///      3、清除 m_UserInfo 信息
void cilent::on_pb_QuitAccountNumber_clicked()
{
    this->hide();
    login_windows.show();
    ui->listWidget->clear();///清除购物车列表
                            ///清除订单列表
                            /// 清除个人信息列表
    m_UserInfo.clear();
}


///加入购物车按钮槽函数
/// 功能：将商品加入到用户数据库中的购物车表单中
void cilent::SlotJoinShoppingCar(QString ModelNumber)
{
    // 构建 Json 对象
    QJsonObject json;
    json.insert("ModelNumber", ModelNumber);
    m_msgSocket->SlotSendMessage(JoinShoppingCar, json);

//    qDebug() << "cilent::SlotJoinShoppingCar";
}


///从购物车移除槽函数
/// 功能：将商品从用户数据库中的购物车表单中移除
void cilent::SlotRemoveFoods(QString ModelNumber)
{
    // 构建 Json 对象
    QJsonObject json;
    json.insert("ModelNumber", ModelNumber);
    m_msgSocket->SlotSendMessage(RemoveFromCar, json);

    qDebug() << "cilent::SlotRemoveFoods";
}


///修改购物车商品数量并更新界面总计和件数label
void cilent::ModifyDatabaseFoodsNumber(QString ModelNumber,QString FoodsNumber)
{
    db.ModifyFoodsNumber(ui->le_AccountNumber->text(),ModelNumber,FoodsNumber);

}


///更新界面总计和件数label
void cilent::UpdateTotalPriceandNumber(bool isJoin,QString SingalPrice)
{
    int Number = ui->lb_SelectNumber->text().toInt();
    int TotalPrice = ui->lb_SelectNumPrice->text().toInt();

//    qDebug() << "UpdateTotalPrice:" << Number << TotalPrice;

    if(isJoin)//选中
    {
        TotalPrice += SingalPrice.toInt();
        Number++;
    }
    else if(!isJoin)//取消选中选中
    {
        TotalPrice -=SingalPrice.toInt();
        Number--;
    }

    ui->lb_SelectNumPrice->setText(QString::number(TotalPrice));
    ui->lb_SelectNumber->setText(QString::number(Number));

//    qDebug() << "UpdateTotalPrice:" << QString::number(TotalPrice) << QString::number(Number);
}


///响应立即购买槽函数--加入订单
void cilent::SlotBuyNow(QString Foods,QString Price)
{
    // 构建 Json 对象
    QJsonObject json;
    json.insert("Foods", Foods);
    json.insert("Price",Price);

    m_msgSocket->SlotSendMessage(BuyNow, json);

    qDebug() << "cilent::SlotBuyNow";
}


///删除订单槽函数
/// 并更新订单列表
void cilent::DeleteOrderForm(QString OrderformNumber)
{
    // 构建 Json 对象
    QJsonObject json;
    json.insert("OrderformNumber",OrderformNumber);

    m_msgSocket->SlotSendMessage(RemoveOrderForm, json);

    qDebug() << "cilent::DeleteOrderForm";


//    UpdateOrderFormtList();
}


///SettleAccounts结算按钮
void cilent::on_pb_SettleAccounts_clicked()
{

}


//// tcp状态监听
///
void cilent::SltTcpStatus(const quint8 &state)
{
//    switch (state) {
//    case DisConnectedHost: {
//        if (m_bQuit) return;
//        QPixmap pixmap  = QPixmap(":/resource/background/app.png");
//        pixmap = Tools::ChangeGrayPixmap(pixmap.toImage());
//        systemTrayIcon->setIcon(QIcon(pixmap));
//        pixmap = QPixmap(Config::m_strHeadFile);
//        ui->widgetHead->SetHeadPixmap(Tools::ChangeGrayPixmap(pixmap.toImage()));
//        if (!this->isVisible()) this->show();
//        CMessageBox::Infomation(this, tr("与服务器断开连接"));
//    }
//        break;
//    case ConnectedHost:
//    {
//        QJsonObject json;
//        json.insert("name", Config::m_strUserName);
//        json.insert("passwd", Config::m_strPassword);

//        m_tcpSocket->SltSendMessage(Login, json);
//    }
//        break;
//    case LoginSuccess:
//    {
//        systemTrayIcon->setIcon(QIcon(":/resource/background/app.png"));
//        ui->widgetHead->SetHeadPixmap(QPixmap(Config::m_strHeadFile));
//        if (!this->isVisible()) this->show();
//        CMessageBox::Infomation(this, tr("重连成功！"));
//    }
//        break;
//    default:
//        break;
//    }
}


//// Tcp对消息类型进行判断
//void cilent::SltTcpReply(const quint8 &type)

void cilent::SltTcpReply(const quint8 &type, const QVector<QString> &dataVal)
{

    qDebug() << "cilent::SltTcpReply"<<"type"<<type<<"case"<<GetUserInfo;

    switch (type) {
    case GetUserInfo:   /// 获取到用户初始化信息，初始化客户端界面
    {
        m_UserInfo = dataVal;       ////保存用户信息
        InitCilentWindows();        /// 3  初始化用户个人信息
        login_windows.close();      ////隐藏登录窗口
        break;
    }
    case GetShoppingList:  //// 获取商城信息
    {
        qDebug() <<dataVal;
        InitCilentWindows();
        UpdateShoppingList(dataVal);
        break;
    }
    case GetShoppingCar:  //// 获取购物车列表
    {
        UpdateShoppingCartList(dataVal);
        break;
    }
    case JoinShoppingCar:
    {
        qDebug() << "case JoinShoppingCar:" << dataVal.value(0);
        m_DetailWidget.JoinShowHintWidget(dataVal.value(0));       ///详情页显示提示窗口

        //加入成功更新购物车列表
        QJsonObject jsonObj;
        jsonObj.insert("name",m_UserInfo.value(0));
        qDebug() << "jsonObj.insert(name)" << m_UserInfo.value(0);
        m_msgSocket->SlotSendMessage(GetShoppingCar,jsonObj);
        break;
    }

    case GetOrderForm: UpdateOrderFormtList(dataVal); break;

    case RemoveFromCar:
    {
        qDebug() << "case RemoveFromCar:";
        if(dataVal.value(0).toInt() == 0)
        {
            //删除成功更新购物车列表
            QJsonObject jsonObj;
            jsonObj.insert("name",m_UserInfo.value(0));
            qDebug() << "jsonObj.insert(name)" << m_UserInfo.value(0);
            m_msgSocket->SlotSendMessage(GetShoppingCar,jsonObj);
        }
        break;
    }

    case RemoveOrderForm:
    {
        if(dataVal.value(0).toInt() == 0)
        {
            //删除成功更新订单信息
            QJsonObject jsonObj;
            m_msgSocket->SlotSendMessage(GetOrderForm,jsonObj);
        }
        break;
    }

    case BuyNow:
    {
        m_DetailWidget.BuyShowHintWidget(dataVal.value(0).toInt());
        //// 更新订单信息
        QJsonObject jsonObj;
        m_msgSocket->SlotSendMessage(GetOrderForm,jsonObj);
        break;
    }

    case ModifyUserInfo:    /// 修改个人信息
    {
        if(dataVal.value(0).toInt() == 0)  /// 修改成功
        {
            QMessageBox msgBox;
            msgBox.setWindowTitle(" ");
            msgBox.setText("修改成功！");
            msgBox.setWindowIcon(QIcon(":/sources/image/成功.png"));
            msgBox.exec();

//            qDebug() << ui->le_Sex->text()<<ui->le_Name->text()<<ui->le_PhoneNumber->text()<<ui->le_Address->text();


            //////未实现
//            m_UserInfo = db.GetUserInfo(m_UserInfo.at(0));///更新用户信息

            ui->lb_NickName->setReadOnly(true);
            ui->le_Address->setReadOnly(true);
            ui->le_Name->setReadOnly(true);
            ui->le_PhoneNumber->setReadOnly(true);
            ui->le_Sex->setReadOnly(true);
            ui->le_Password->setReadOnly(true);
            ui->le_PasswordAgain->setReadOnly(true);
        }
        break;
    }
    case ChatWithSb:  /// 解析聊天内容
    {
        m_CurrentChatFriend = dataVal.at(1);    ////保存当前聊天人账号
        ui->pb_CurrentFriendName->setText(dataVal.at(2));    ////设置当前chatFriendsName
        ui->lw_ChatRecords->addItem(dataVal.at(1)+" : "+dataVal.at(3));
        break;
    }
    case GetFriendsList:
    {
        UpdateFriendsList(dataVal);
        break;
    }
    case GetFriendsInfo:        ///获取到好友信息
    {
        //更新名片信息
        M_NameCard.UpdateNameCard(dataVal);
        M_NameCard.SetPb_AddFriendsText("发送消息");
        M_NameCard.show();
        break;
    }
    case SendGoods:
    {
        if(dataVal.at(0) == "1")
        {
            //// 更新订单信息
            QJsonObject jsonObj;
            jsonObj.insert("Type",m_UserInfo.value(8));
            m_msgSocket->SlotSendMessage(GetOrderForm,jsonObj);
            break;
        }
    }

//    case SendMsg: ParseFriendMessageReply(dataVal); break;
//    case SendGroupMsg: ParseGroupMessageReply(dataVal); break;
//    case SendFile: ParseFriendMessageReply(dataVal); break;
//    case SendPicture: ParseFriendMessageReply(dataVal); break;
    default:
        break;
    }
}


//// 设置粗体按钮
void cilent::on_pushButton_3_clicked()
{
    if(ui->pushButton_3->text() == "粗体")
    {
//        ui->tE_MessageWindows->set
    }
}


//// 设置斜体按钮
////


//// 改变聊天窗口字体大小
void cilent::on_comboBox_currentIndexChanged(const QString &arg1)
{
    ui->tE_MessageWindows->setFontPointSize(arg1.toInt());
}


//// 改变聊天窗口字体
void cilent::on_fontComboBox_currentIndexChanged(const QString &arg1)
{
    ui->tE_MessageWindows->setFontFamily(arg1);
}


//// 打开好友聊天窗口
void cilent::SlotOpenFriendsChatWindows(QString FriendName,QString Id)
{
    qDebug() << "cilent::SlotOpenFriendsChatWindows" << FriendName << Id;


    ui->pb_CurrentFriendName->setText(FriendName);
    ///设置当前聊天对象
    m_CurrentChatFriend =  Id;

}


//// 查看好友信息请求
void cilent::on_pb_CurrentFriendName_clicked()
{
    if(ui->pb_CurrentFriendName->text() != "")
    {
        QJsonObject json;
        json.insert("FriendsID",m_CurrentChatFriend);

        //// 请求服务器好友信息
        m_msgSocket->SlotSendMessage(GetFriendsInfo, json);
    }
}


//// 发送订单号槽函数
void cilent::SlotSendOrderFormNumber(QString OrderFormNumber,QString SendGoodsNumber)
{
    QJsonObject json;
    json.insert("OrderFormNumber",OrderFormNumber);
    json.insert("SendGoodsNumber",SendGoodsNumber);
    m_msgSocket->SlotSendMessage(SendGoods, json);
}
